package com.pg.auth.service;

import com.pg.auth.model.dto.sysuser.SysUserDTO;
import com.pg.auth.model.dto.sysuser.SysUserReq;
import com.pg.auth.model.dto.sysuser.SysUserVO;
import com.pg.base.component.PageVO;
import com.pg.base.component.Pager;
import com.pg.base.vo.LoginVO;

import java.util.List;

/***
 * SysUserService
 * @author : huhuaping
 * @Date : 2024-06-06 20:59:34
 */
public interface SysUserService {

    /**
    *  分页查询
    * @param pageReq 查询条件
    * @return 分页对象
    */
    PageVO<SysUserVO> page(Pager<SysUserReq,SysUserVO> pageReq);

    /**
     *  集合查询
     * @param sysUserReq 查询条件
     * @return 集合
     */
    List<SysUserVO> list(SysUserReq sysUserReq);

    /**
     * 根据ID查询SysUser
     * @ param userId 记录ID
     * @ return VO对象
     */
    SysUserVO getById(Long userId);


    /**
     * 新增
     * @param sysUserDTO 新增数据对象
     * @param userVo  用户对象
     * @return id  记录主键ID
     */
    Long add(SysUserDTO sysUserDTO,LoginVO userVo);


    /**
     * 根据id修改
     * @param sysUserDTO 修改数据对象
     * @return number 修改条数
     */
    Integer updateById(SysUserDTO sysUserDTO,LoginVO userVo);

    /**
     * 根据ID删除SysUser
     * @param userId 删除记录ID
     * @return 删除条数
     */
    int deleteById(Long userId);
}
